/**
*FileContentManager is a Java based file manager desktop application, 
*it can show, edit and manipulate the content of the files archived inside a zip.
*
*Copyright (C) 2007 
*
*Created by Camila Sanchez [http://mimix.wordpress.com/], Rafael Naufal [http://rnaufal.livejournal.com] and Rodrigo [rdomartins@gmail.com]
*
*FileContentManager is free software; you can redistribute it and/or
*modify it under the terms of the GNU Lesser General Public
*License as published by the Free Software Foundation; either
*version 2.1 of the License, or (at your option) any later version.
*
*This library is distributed in the hope that it will be useful,
*but WITHOUT ANY WARRANTY; without even the implied warranty of
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*Lesser General Public License for more details.
*
*You should have received a copy of the GNU Lesser General Public
*License along with FileContentManager; if not, write to the Free Software
*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

package br.com.jteam.jfcm.gui.adapter;

import java.io.InputStream;

/**
 * <p>
 * Respons&aacute;vel por gerar o conte&uacute;do de um arquivo
 * visu&aacute;liz&aacute;vel do modelo. Tal conte&uacute;do pode ser
 * {@link br.com.minaurod.fcm.gui.RenderedFileType#TEXT} ou
 * {@link br.com.minaurod.fcm.gui.RenderedFileType#IMAGE}
 * 
 * @author Rafael Naufal <rafael.naufal@gmail.com>
 * @param <T> -
 *            Tipo parametrizado em fun&ccedil;&atilde;o do conte&uacute;o, pode
 *            ser TEXTO ou IMAGEM.
 * @since 1.0
 * @version $Id$
 */
public interface FileContent<T>
{
	/**
	 * <p>
	 * Cria&ccedil;&atilde;o do conte&uacute;do de um arquivo
	 * renderiz&aacute;vel.
	 * 
	 * @param is -
	 *            o stream de dados a ser lido para renderizar um
	 *            conte&uacute;do.
	 * @return - conte&uacute;do do arquivo, que pode ser imagem ou texto.
	 * @throws ShowFileContentAdapterException -
	 *             Caso ocorra algum erro de entrada / sa&iacute;da na abertura e
	 *             leitura do arquivo.
	 */
	T generateFileContent(InputStream is) throws ShowFileContentAdapterException;
}
